﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using FluentNHibernate.Mapping;
using Novapangeia.Dominio;

namespace NovaPangeia.Mapping
{
    public class UsuarioMapping : ClassMap<Usuario>
    {
        public UsuarioMapping()
        {
            Table("usuario");

            Id(x => x.Id, "id").UnsavedValue(0);
            Map(x => x.Login , "login");
            Map(x => x.Senha, "senha");
            Map(x => x.General, "general");
            Map(x => x.Cidade, "cidade");
            Map(x => x.Email, "email");
            Map(x => x.Cordenada_X, "coordenada_X");
            Map(x => x.Cordenada_Y, "coordenada_Y");
            Map(x => x.Score, "score");

            HasOne(x => x.tecnologias)
                .PropertyRef(x => x.Usuario)
                .LazyLoad();
            HasOne(x => x.recursos)
                .PropertyRef(x => x.Usuario)
                .LazyLoad();
            HasOne(x => x.construcoes)
                .PropertyRef(x => x.Usuario)
                .LazyLoad();

            HasMany(x => x.tropas)
                .KeyColumn("usuario_id")
                .Cascade.All();
            HasMany(x => x.NegociacoesCriadas)
                .KeyColumn("usuario_ofertante");
            HasMany(x => x.NegociacoesAceitas)
                .KeyColumn("usuario_comprador");
        }
    }
}
